package com.tsj.model.enums;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author taoshujian
 * @version 1.0
 * @since 2025-11-19 13:48:23
 */
public enum InsuranceCompany {
    /**
     * 产险公司
     */
    PICC("PICC","中国人民财产保险股份有限公司深圳市分公司"),

    PAIC("PAIC","中国平安财产保险股份有限公司深圳分公司"),

    CPIC("CPIC","中国太平洋财产保险股份有限公司深圳分公司"),

    TPIC("TPIC","太平财产保险有限公司深圳分公司"),

    TPBX("TPBX","安盛天平财产保险股份有限公司深圳分公司"),

    JCIC("JCIC","永诚财产保险股份有限公司深圳分公司"),

    TAIC("TAIC","天安财产保险股份有限公司深圳分公司"),

    GPIC("GPIC","中国人寿财产保险股份有限公司深圳市分公司"),

    FDPC("FDPC","富德财产保险股份有限公司深圳分公司"),

    YDCX("YDCX","英大泰和财产保险股份有限公司深圳分公司"),

    MSIG("MSIG","三井住友海上火灾保险（中国）有限公司广东分公司深圳营销服务部"),

    CCIC("CCIC","中国大地财产保险股份有限公司深圳分公司"),

    AZCN("AZCN","安联财产保险（中国）有限公司深圳营销服务部"),

    XJIC("XJIC","新疆前海联合财产保险股份有限公司深圳分公司"),

    ZAIC("ZAIC","众安在线财产保险股份有限公司深分（虚拟）"),

    TKCN("TKCN","泰康在线财产保险股份有限公司深分（虚拟）"),

    YACN("YACN","易安财产保险股份有限公司深分（虚拟）"),

    AXIC("AXIC","安心财产保险有限责任公司深分（虚拟）"),

    XYIC("XYIC","日本兴亚财产保险（中国）有限责任公司"),

    CKCN("CKCN","中国出口信用保险公司深圳分公司"),

    CICP("CICP","中华联合财产保险股份有限公司深圳分公司"),

    HTIC("HTIC","华泰财产保险有限公司深圳分公司"),

    APPC("APPC","亚太财产保险有限公司深圳分公司"),

    BOCI("BOCI","中银保险有限公司深圳分公司"),

    ABIC("ABIC","安邦财产保险股份有限公司深圳分公司"),

    XDCX("XDCX","信达财产保险股份有限公司深圳分公司"),

    YGBX("YGBX","阳光财产保险股份有限公司深圳市分公司"),

    DBIC("DBIC","都邦财产保险股份有限公司深圳分公司"),

    BPIC("BPIC","渤海财产保险股份有限公司深圳分公司"),

    ACIC("ACIC","安诚财产保险股份有限公司深圳分公司"),

    DHIC("DHIC","鼎和财产保险股份有限公司深圳分公司"),

    ZSIC("ZSIC","浙商财产保险股份有限公司深圳分公司"),

    ZKIC("ZKIC","紫金财产保险股份有限公司深圳分公司"),

    UTIC("UTIC","众诚汽车保险股份有限公司深圳分公司"),

    AIGC("AIGC","美亚财产保险有限公司深圳分公司"),

    SPIC("SPIC","三星财产保险（中国）有限公司深圳分公司"),

    /**
     * 寿险公司
     */

    ICBC("ICBC","工银安盛人寿保险有限公司深圳中心支公司"),

    BOCL("BOCL","交银康联人寿保险有限公司深圳市分公司"),

    VAIC("VAIC","中英人寿保险有限公司广东分公司深圳营销服务部"),

    THTF("THTF","同方全球人寿保险有限公司广东分公司深圳营销服务部 "),

    RTRS("RTRS","瑞泰人寿保险有限公司广东分公司深圳营销服务部"),

    METL("METL","中美联泰大都会人寿保险有限公司深圳中心支公司"),

    ELEL("ELEL","恒大人寿保险有限公司深圳中心支公司 "),

    PINL("PINL","中国平安人寿保险股份有限公司"),

    GPIL("GPIL","中国人寿保险股份有限公司深圳市分公司"),

    CPIL("CPIL","中国太平洋人寿保险股份有限公司深圳分公司"),

    PINLSZ("PINLSZ","中国平安人寿保险股份有限公司深圳分公司"),

    NCIL("NCIL","新华人寿保险股份有限公司深圳分公司"),

    TKRL("TKRL","泰康人寿保险股份有限公司深圳分公司"),

    TPRL("TPRL","太平人寿保险有限公司深圳分公司"),

    CCBL("CCBL","建信人寿保险有限公司深圳分公司"),

    SUNL("SUNL","光大永明人寿保险有限公司深圳分公司"),

    FUNL("FUNL","富德生命人寿保险股份有限公司深圳分公司"),

    PAYL("PAYL","平安养老保险股份有限公司深圳分公司"),

    ZHRL("ZHRL","中融人寿保险股份有限公司深圳分公司"),

    TPYL("TPYL","太平养老保险股份有限公司深圳分公司"),

    CHJKL("CHJKL","中国人民健康保险股份有限公司深圳分公司"),

    HUAL("HUAL","华夏人寿保险股份有限公司深圳分公司"),

    XTRL("XTRL","信泰人寿保险股份有限公司深圳分公司"),

    XHJL("XHJL","和谐健康保险股份有限公司深圳分公司"),

    PICCL("PICCL","中国人民人寿保险股份有限公司深圳市分公司"),

    GHGSL("GHGSL","国华人寿保险股份有限公司深圳分公司"),

    TKYL("TKYL","泰康养老保险股份有限公司深圳分公司"),

    HAPPL("HAPPL","幸福人寿保险股份有限公司深圳分公司"),

    SUNRL("SUNRL","阳光人寿保险股份有限公司深圳分公司"),

    ABRL("ABRL","安邦人寿保险股份有限公司深圳分公司"),

    QHRL("QHRL","前海人寿保险股份有限公司深圳分公司"),

    ZJRL("ZJRL","珠江人寿保险股份有限公司深圳分公司"),

    MANUL("MANUL","中宏人寿保险有限公司深圳分公司"),

    ALLI("ALLI","中德安联人寿保险有限公司深圳分公司"),

    XCRL("XCRL","信诚人寿保险有限公司深圳分公司"),

    ZYRL("ZYRL","中意人寿保险有限公司深圳分公司"),

    RBRL("RBRL","友邦保险有限公司深圳分公司"),

    ZSXRL("ZSXRL","招商信诺人寿保险有限公司深圳分公司"),

    PAJKL("PAJKL","平安健康保险股份有限公司深圳分公司"),
    ;

    private String code;

    private String name;

    private InsuranceCompany(String code, String name) {
        this.code = code;
        this.name = name;
    }

    public static String getName(String code) {

        if (code == null)
            return "";

        String t_name = code;
        for (InsuranceCompany obj : InsuranceCompany.values()) {
            if (obj.getCode().equals(code)) {
                t_name = obj.getName();
                break;
            }
        }
        return t_name;
    }

    public static List getValus() {
        List list = new ArrayList();

        for (InsuranceCompany obj : InsuranceCompany.values()) {
            Map map = new HashMap();
            map.put("code", obj.getCode());
            map.put("name", obj.getName());
            list.add(map);
        }
        return list;
    }

    public String getCode() {
        return code;
    }

    public String getName() {
        return name;
    }
}
